package com.midea.iot.course2.mysql;

import com.midea.iot.util.DBUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

/**
 *  JDBC的工具类：
 *  1 获取连接
 *  2.释放资源
 *   @author xingwuxw
 *  作业2
 *         数据准备：
 *         在mysql中创建一个数据表employee , 有以下字段
 *         id INT PRIMARY KEY AUTO_INCREMENT,  NAME VARCHAR(10),  gender CHAR(1), -- 性别  salary DOUBLE, -- 工资  bonus DOUBLE, -- 奖金  join_date DATE -- 入职日期示
 *         请给 employee 员工表中添加一些数据。
 *         要求：
 *         1.编写一个测试类，在该测试类中使用PrepareStatement 根据name和gender进行数据查询，并将结果打印在控制台。
 *         2.要求编写一个编写一个db.properties , 数据库的数据存放在配置文件中
 *         3.要求自己编写一个工具类DBUtils , 该类中提供静态获取Connection连接的方法.
 *         参考答案:
 *         db.properties
 *         Emp实体
 *         JDBCUtils工具类
 *         JDBC_PrepareStatement测试类
 *
 */

public class TestPrepareStatement {
    @Test
    public void test() throws SQLException {
        //1.获取连接
        Connection connection = DBUtils.getConnection();
        //2.获取prepareStatement对象
        PreparedStatement ps = connection.prepareStatement("select * from employee where name = ? and gender = ?");
        //3.设置参数
        ps.setString(1,"xingwuxw1");
        ps.setString(2,"xingwuxw2");
        //4.执行查询
        ResultSet resultSet = ps.executeQuery();
        //5.处理结果集
        if (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            String gender = resultSet.getString("gender");
            double salary = resultSet.getDouble("salary");
            double bonus = resultSet.getDouble("bonus");
            Date join_date = resultSet.getDate("join_date");
            System.out.println(id + " " + name + " " + gender + " " + salary + " " + bonus + " " + join_date);
        }
        //6.关闭流
        DBUtils.close(connection,ps,resultSet);
    }
}
